Story of a hundred vulnerable Jenkins plugins #1742
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
NCC Group (Viktor Gazdag) manually tested hundreds of Jenkins plugins and identified 100+ vulnerable plugins, leading to coordinated responsible disclosures (02 May 2019). The post focuses on two recurring vulnerability classes and shows concrete, low-level evidence (filesystem artifacts, HTTP requests, error output) plus remediation patterns:
1) credentials stored in plaintext (or exposed in the UI due to incorrect Jelly controls), and
2) CSRF + missing permission checks on “test connec...
🔧 Technical Details
Plaintext Jenkins plugin/job secret storage discovery: Don’t assume Jenkins secrets are only in
credentials.xml. Many plugins persist secrets in their own global XML under/var/lib/jenkins/*.xmlor in per-job/var/lib/jenkins/jobs/<JOB>/config.xml. If filesystem read access is possible, enumerate and inspect these files (e.g.,ls -l,cat) and search for obvious secret tags (example shown:<awsSecretKey>) because UI masking does not prevent plaintext persistence.Correct Jenkins secret handling pattern (developer-side hardening): Replace raw
Stringsecret fields withhudson.util.Secret(or use the Credentials Plugin). Persist encrypted values usingSecret.getEncryptedValue(...)and read them back withSecret.decrypt(...). Ensure theDataBoundConstructorround-trips encrypted values so secrets are not re-exposed ...🤖 Agent Actions
Summary:
Files Modified:
src/network-services-pentesting/pentesting-web/jenkins.mdsrc/network-services-pentesting/pentesting-web/README.mdThis PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.
📚 Repository Maintenance
All .md files have been checked for proper formatting (headers, includes, etc.).